<?php
/**[广告表模型]
 * @Author: 976123967@qq.com
 * @Date:   2014-08-16 12:39:23
 * @Last Modified by:   Administrator
 * @Last Modified time: 2014-12-11 10:50:02
 */
class AdModel extends Model{
	protected $tableName='Ad';


		// 自动验证
	    // array(验证字段,验证规则,错误提示,[验证条件,附加规则,验证时间])
	    protected $_validate=array(
	    	//广告位置
	    	array('position_psid','/^[^0]\d*$/','请选择广告位置',1,'regex',3),  
	        // 广告名称验证
	        array('name','require','广告名称必须填写',1),
	     
	    );

        // 自动完成
        protected $_auto = array (

        	// 排序转换
        	array('sort','intval',3,'function'),
            // 时间转成时间戳
            array('addtime','time',1,'function'), 
            // 管理员aid
            array('user_uid','_uid',1,'callback'),
        );

        // 用户uid
		public function _uid()
		{
			return session('uid');
		}


		/**
		 * [add_ad 添加]
		 */
		public function add_ad()
		{
			$data=$this->data;
			// 上传图片
			if(!$pic=$this->alter_pic())
				return false;
			elseif($pic!=1)
			{
				$data['pic']=$pic;
			}
			// 上传图片
			/*if(!$picEn=$this->alter_pic_en())
				return false;
			elseif($picEn!=1)
			{
				$data['pic_en']=$picEn;
			}*/
			return $this->add($data);
		}
		/**
		 * [save_ad 更新]
		 */
		public function save_ad()
		{
			$data=$this->data;
			// 上传图片
			if(!$pic=$this->alter_pic())
				return false;
			elseif($pic!=1)
			{
				$data['pic']=$pic;
			}
			// 上传图片
			/*if(!$picEn=$this->alter_pic_en())
				return false;
			elseif($picEn!=1)
			{
				$data['pic_en']=$picEn;
			}*/
			$this->save($data);
			return true;
		}


		/**
		 * [alter_pic 上传图片]
		 * @return [type] [description]
		 */
		public function alter_pic()
		{

			$aid = I('post.aid');
			if($aid&&!empty($_FILES['pic']['name']))
			{
				$field=$this->where("aid=$aid")->field("pic")->find($gid);
				is_file($field['pic']) and unlink($field['pic']);
			}

			if(!empty($_FILES['pic']['name']))
			{
				// 上传类
				import('ORG.Net.UploadFile');
				$upload = new UploadFile();// 实例化上传类
				$upload->maxSize  = 3145728 ;// 设置附件上传大小
	            $upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg','pdf','apk','rar','zip');// 设置附件上传类型
	            $savePath = './Data/Uploads/image/'.date('Y').'/'.date('m').'/'.date('d').'/';
	            // 创建目录
	            is_dir($savePath) || mkdir($savePath,0777,true);
	            // 执行上传
	            if($info=$upload->uploadOne($_FILES['pic'],$savePath))
	                return $info[0]['savepath'].$info[0]['savename'];
	            else
	            {
	            	$this->error=$upload->getError();
	            	return false;
	            }

			}
			else
				return 1;
		}



		/**
		 * [alter_pic_en 上传图片]
		 * @return [type] [description]
		 */
		public function alter_pic_en()
		{

			$aid = I('post.aid');
			if($aid&&!empty($_FILES['pic_en']['name']))
			{
				$field=$this->where("aid=$aid")->field("pic_en")->find($gid);
				is_file($field['pic_en']) and unlink($field['pic_en']);
			}

			if(!empty($_FILES['pic_en']['name']))
			{
				// 上传类
				import('ORG.Net.UploadFile');
				$upload = new UploadFile();// 实例化上传类
				$upload->maxSize  = 3145728 ;// 设置附件上传大小
	            $upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg','pdf','apk','rar','zip');// 设置附件上传类型
	            $savePath = './Data/Uploads/image/'.date('Y').'/'.date('m').'/'.date('d').'/';
	            // 创建目录
	            is_dir($savePath) || mkdir($savePath,0777,true);
	            // 执行上传
	            if($info=$upload->uploadOne($_FILES['pic_en'],$savePath))
	                return $info[0]['savepath'].$info[0]['savename'];
	            else
	            {
	            	$this->error=$upload->getError();
	            	return false;
	            }

			}
			else
				return '';
		}


		/**
		 * [find_one 获取单条信息]
		 * @param  [type] $cid [description]
		 * @return [type]      [description]
		 */
		public function  find_one($aid)
		{
			// 执行模型中的find
			$data=$this->find($aid);
			$data['pic']= $data['pic']?__ROOT__.'/'.$data['pic']:__ROOT__.'/Data/Image/default.gif';
			$data['pic_en']= $data['pic_en']?__ROOT__.'/'.$data['pic_en']:__ROOT__.'/Data/Image/default.gif';
			return $data;
		}

		/**
		 * [del_ad 删除]
		 * @param  [type] $aid [description]
		 * @return [type]      [description]
		 */
		public function del_ad($aid)
		{
			$data = $this->find($aid);
			is_file($data['pic']) && unlink($data['pic']);
		 	$this->delete($aid);
		}

		/**
	 * [update_order 排序]
	 * @return [type] [description]
	 */
	public function update_order()
	{
		// 验证
		$aid = I('post.aid');
		if(empty($aid))
		{
			$this->error='没有信息用于排序';
			return false;
		}

		$listOrder= I('post.list_order');
		// 循环更新
		foreach($aid as $k=>$v)
		{
			$data =array(
				'sort'=>$listOrder[$k]
			);
			$this->where(array('aid'=>$v))->save($data);
		}
		return true;
	}


	/**
	 * [update_check update_check]
	 * @param  [type] $sta [description]
	 * @return [type]      [description]
	 */
	public function update_check($sta)
	{
		$aid = I('post.aid');
		if(empty($aid))
		{
			$this->error='没有信息用于审核';
			return false;
		}

		// 循环更改
		foreach($aid as $k=>$v)
		{
			$data =array(
				'verifystate'=>$sta
			);
			$this->where(array('aid'=>$v))->save($data);

		}
		return true;
	}

	/**
	 * [delete_check 删除]
	 * @return [type] [description]
	 */
	public function delete_check()
	{
		// 验证
		$aid = I('post.aid');
		if(empty($aid))
		{
			$this->error='没有信息用于删除';
			return false;
		}
		// 删除
		foreach($aid as $k=>$v)
		{
			$this->del_ad($v);
		}
		return true;
	}

}